package org.example.springbootwebexample.controller;

import lombok.extern.slf4j.Slf4j;
import org.example.springbootwebexample.pojo.Result;
import org.example.springbootwebexample.utils.AliyunOSSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/upload")
@Slf4j
public class UploadController {


    //本地存储
//    @PostMapping
//    public Result upload(String username, Integer age, MultipartFile image) throws IOException {
//        log.info("文件上传....");
//
//        //接受到文件之后，需将文件储存起来
//        //image.transferTo(new File("E:\\images\\1.txt"));
//
//
//        //1.构建新的不重复的文件名
//
//        //1.1 生成不重复的文件名
//        String uuid = UUID.randomUUID().toString();
//        log.info("生成uuid {}", uuid);
//
//        //1.2 获取原始文件名
//        String originalFilename = image.getOriginalFilename();
//        log.info("获取原始文件名 {}", originalFilename);
//
//        //1.3 获取原始文件类型
//        String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
//        log.info("获取原始文件类型 {}", extName);
//
//        //1.4 组装新的文件名
//        String newFileName = uuid + extName;
//        log.info("组成新的文件名 {}", newFileName);
//
//        //2. 将文件转存到磁盘目录中
//        image.transferTo(new File("E:\\images\\" + newFileName));
//        log.info("文件上传成功...");
//
//        return Result.success();
//    }


    @Autowired
    private AliyunOSSUtils aliyunOSSUtils;

    //
    @PostMapping
    public Result upload(MultipartFile image) throws Exception {
        log.info("文件上传到阿里云OOS");

        String url =  aliyunOSSUtils.upload(image);

        log.info("文件上传成功");
        return Result.success(url);
    }



}
